home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / GCC 1.37.1r14 / usr / gcc-1.37.1r14 / object oriented files / CDRVRTable.cp < prev    next >
Encoding:
Text File  |  1993-08-02  |  2.2 KB  |  128 lines  |  [TEXT/KAHL]

  1. #include "CDRVRTable.h"
  2. #include "CDRVRArray.h"
  3.  
  4. void CDRVRTable::GetCellText( Cell aCell, short availableWidth, StringPtr itsText)
  5.   {
  6.   ASSERT( member( itsArray, CDRVRArray));
  7.  
  8.   if (itsArray)
  9.     {
  10.     int strlen(char *),sprintf(void *,char *,...);
  11.     char mybuf[256];
  12.     struct nlist newlist,*sym = &newlist;
  13.     itsArray->GetItem( &newlist, aCell.v+1);
  14.       if (sym->n_type & ~N_EXT || sym->n_value)
  15.     sprintf (mybuf+1,"%08x ", sym->n_value);
  16.     else sprintf (mybuf+1,"-------- ");
  17.     switch (sym->n_type)
  18.       {
  19.       case N_EXT:
  20.         if (sym->n_value) sprintf (mybuf+10,"C");
  21.         else sprintf (mybuf+10,"U");
  22.     break;
  23.  
  24.       case 0:
  25.         if (sym->n_value) sprintf (mybuf+10,"c");
  26.         else sprintf (mybuf+10,"u");
  27.     break;
  28.  
  29.       case N_ABS | N_EXT:
  30.     sprintf (mybuf+10,"A");
  31.     break;
  32.  
  33.       case N_ABS:
  34.     sprintf (mybuf+10,"a");
  35.     break;
  36.  
  37.       case N_TEXT | N_EXT:
  38.     sprintf (mybuf+10,"T");
  39.     break;
  40.  
  41.       case N_TEXT:
  42.     sprintf (mybuf+10,"t");
  43.     break;
  44.  
  45.       case N_DATA | N_EXT:
  46.     sprintf (mybuf+10,"D");
  47.     break;
  48.  
  49.       case N_DATA:
  50.     sprintf (mybuf+10,"d");
  51.     break;
  52.  
  53.       case N_BSS | N_EXT:
  54.     sprintf (mybuf+10,"B");
  55.     break;
  56.  
  57.       case N_BSS:
  58.     sprintf (mybuf+10,"b");
  59.     break;
  60. /*
  61.       case N_SETV | N_EXT:
  62.     sprintf (mybuf+10,"V");
  63.     break;
  64.  
  65.       case N_SETV:
  66.     sprintf (mybuf+10,"v");
  67.     break;
  68.  
  69.       case N_SETA | N_EXT:
  70.     sprintf (mybuf+10,"L");
  71.     break;
  72.     
  73.       case N_SETA:
  74.     sprintf (mybuf+10,"l");
  75.     break;
  76.     
  77.       case N_SETT | N_EXT:
  78.     sprintf (mybuf+10,"X");
  79.     break;
  80.     
  81.       case N_SETT:
  82.     sprintf (mybuf+10,"x");
  83.     break;
  84.     
  85.       case N_SETD | N_EXT:
  86.     sprintf (mybuf+10,"Z");
  87.     break;
  88.     
  89.       case N_SETD:
  90.     sprintf (mybuf+10,"z");
  91.     break;
  92.     
  93.       case N_SETB | N_EXT:
  94.     sprintf (mybuf+10,"S");
  95.     break;
  96.     
  97.       case N_SETB:
  98.     sprintf (mybuf+10,"s");
  99.     break;
  100.     
  101.       case N_INDR | N_EXT:
  102.     sprintf (mybuf+10,"I");
  103.     break;
  104.     
  105.       case N_INDR:
  106.     sprintf (mybuf+10,"i");
  107.     break;
  108.     
  109.       case N_WARNING | N_EXT:
  110.     sprintf (mybuf+10,"W");
  111.     break;
  112.     
  113.       case N_WARNING:
  114.     sprintf (mybuf+10,"w");
  115.     break;
  116. */
  117.     }
  118.     
  119.     sprintf(mybuf+11," %s", newlist.n_un.n_name);
  120.     *mybuf = strlen(mybuf+1)+1;
  121.     
  122.     if (*mybuf > availableWidth) *mybuf = availableWidth;
  123.     BlockMove(mybuf, itsText, 1+*mybuf);
  124.     }
  125.  
  126. }    /* CDRVRTable::GetCellText */
  127.  
  128.